Micron Document
`:top
Die `!Java Virtual Machine`! (abgekürzt `*Java VM`* oder `*JVM`*) ist der Teil der `F33f`_`[Java-Laufzeitumgebung`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Java-Laufzeitumgebung]`_`f (Java Runtime Environment, JRE) für `F33f`_`[Java`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Java_(Programmiersprache)]`_`f-Programme, der für die Ausführung des `F33f`_`[Java-Bytecodes`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Java-Bytecode]`_`f verantwortlich ist. Hierbei wird im Normalfall jedes gestartete Java-Programm in seiner eigenen `F33f`_`[virtuellen Maschine`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Virtuelle_Maschine]`_`f (VM) ausgeführt. Der andere Teil der Java-Laufzeitumgebung sind die Java-`F33f`_`[Klassenbibliotheken`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Klassenbibliothek]`_`f.

Die JVM dient dabei als `F33f`_`[Schnittstelle`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Schnittstelle]`_`f zur Maschine und zum `F33f`_`[Betriebssystem`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Betriebssystem]`_`f und ist für die meisten Plattformen verfügbar (z. B. `F33f`_`[Linux`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Linux]`_`f, `F33f`_`[macOS`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=MacOS]`_`f, `F33f`_`[Palm OS`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Palm_OS]`_`f, `F33f`_`[Solaris`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Solaris_(Betriebssystem)]`_`f, `F33f`_`[Windows`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Microsoft_Windows]`_`f, `F33f`_`[z/OS`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Z/OS]`_`f). Die JVM ist meist in den Programmiersprachen `F33f`_`[C`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=C_(Programmiersprache)]`_`f oder `F33f`_`[C++`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=C++]`_`f geschrieben.

Die Bestandteile der JVM sind

• der Klassenlader (`*classloader`* und `*resolver`*),
• die `F33f`_`[Speicherverwaltung`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Speicherverwaltung]`_`f sowie `F33f`_`[(selbsttätige) -bereinigung`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Speicherbereinigung]`_`f (`*garbage collection`*) und die
• Ausführungseinheit (`*execution engine`*).

>>Contents

• `F0af`_`[Funktionsprinzip`#funktionsprinzip]`_`f
• `F0af`_`[Sicherheitsvorteile`#sicherheitsvorteile]`_`f
• `F0af`_`[Optimierungsverfahren`#optimierungsverfahren]`_`f
• `F0af`_`[Dynamische Optimierung`#dynamische-optimierung]`_`f
• `F0af`_`[Implementierungen in Hardware`#implementierungen-in-hardware]`_`f
• `F0af`_`[Abschottung der Threads`#abschottung-der-threads]`_`f
• `F0af`_`[JVM-Sprachen`#jvm-sprachen]`_`f
• `F0af`_`[Kompilierung in JavaScript`#kompilierung-in-javascript]`_`f
• `F0af`_`[Siehe auch`#siehe-auch]`_`f
• `F0af`_`[Weblinks`#weblinks]`_`f
• `F0af`_`[Einzelnachweise`#einzelnachweise]`_`f

-─

>>Funktionsprinzip

Vom `F33f`_`[Java-Compiler`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Java-Compiler]`_`f erzeugter (`F33f`_`[plattformunabhängiger`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Plattformunabhängig]`_`f) `F33f`_`[Bytecode`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Bytecode]`_`f wird von einer plattformabhängigen Java Virtual Machine ausgeführt. Die erzeugten Bytecode-Dateien (Dateiendung „.class“) werden während der `F33f`_`[Laufzeit`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Laufzeit_(Informatik)]`_`f in die lokale `F33f`_`[Maschinensprache`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Maschinensprache]`_`f übersetzt. Die virtuelle Maschine arbeitet dabei wie ein `F33f`_`[Interpreter`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Interpreter]`_`f, ist jedoch wesentlich schneller, da z. B. keine `F33f`_`[Syntaxüberprüfungen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Syntax]`_`f mehr vorgenommen werden müssen.

>>Sicherheitsvorteile

Die Java Virtual Machine bietet neben der Plattformunabhängigkeit des Bytecodes auch einen Gewinn an Sicherheit. Sie überwacht zur Laufzeit die Ausführung des Programms, verhindert also zum Beispiel `F33f`_`[Pufferüberläufe`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Pufferüberlauf]`_`f, welche zu unvorhersehbarem Verhalten wie etwa dem Absturz des Programmes führen. Im speziellen Fall von Java fällt diese Überwachung sehr einfach aus, da Java nicht direkt `F33f`_`[Zeiger`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Zeiger_(Informatik)]`_`f unterstützt (nur implizit).

>>Optimierungsverfahren

Um die Ausführungsgeschwindigkeit von Java-Programmen zu erhöhen, setzen die meisten Java-VMs sogenannte `F33f`_`[JIT-Compiler`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=JIT-Compiler]`_`f (JITC) ein, die unmittelbar während des Programmablaufs den Bytecode „`!J`!ust `!I`!n `!T`!ime“ dauerhaft in `F33f`_`[Maschinencode`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Maschinencode]`_`f übersetzen. Eine Weiterentwicklung dieses Ansatzes ist der Hotspot-Optimizer von `F33f`_`[Sun`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Sun_Microsystems]`_`f, welcher mit dynamischer Optimierung arbeitet:

>>>Dynamische Optimierung


Hauptartikel

:

Dynamische Optimierung

Oft ist zum Zeitpunkt der `F33f`_`[Kompilierung`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Kompilierung]`_`f nicht bekannt, welche konkrete `F33f`_`[Eingabe`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Eingabe_(Computer)]`_`f eine `F33f`_`[Software`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Software]`_`f verarbeiten muss. Demzufolge muss die Software mit allen Arten von Eingaben zurechtkommen. Die Eingabe wird demnach in `F33f`_`[Variablen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Variable_(Programmierung)]`_`f gespeichert. Nach dem Start des Programms werden jedoch viele Variablen nicht mehr geändert. Folglich sind diese – von einem Zeitpunkt kurz nach dem Start an – Konstanten. Wird nun erst nach diesem Zeitpunkt die Software für die System-Architektur kompiliert (dies ist bei `F33f`_`[HotSpot`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=HotSpot]`_`f der Fall), so können diese Konstanten berücksichtigt werden. Bestimmte `F33f`_`[Verzweigungen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Bedingte_Anweisung_und_Verzweigung]`_`f, die nur von solchen „Halbkonstanten“ abhängig sind, sind dann für immer eindeutig und stellen somit kein Risiko für eine falsche `F33f`_`[Sprungvorhersage`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Sprungvorhersage]`_`f dar. Ein solcher Programmcode kann also schneller ablaufen als zu einem früheren Zeitpunkt kompilierter Code.

>>>Implementierungen in Hardware

Ausführungen in `F33f`_`[Hardware`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Hardware]`_`f sind die `F33f`_`[Java-Prozessoren`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Java-Prozessor]`_`f, `F33f`_`[Mikroprozessoren`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Mikroprozessor]`_`f, die Java-Bytecode als `F33f`_`[Maschinensprache`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Maschinensprache]`_`f verwenden. Sie konnten sich gegen die schnelle Steigerung der Leistungsfähigkeit von prozessorspezifischen JVMs auf anderssprachigen Prozessoren, wie in PCs und Mobiltelefonen eingesetzt, nicht durchsetzen.

>>Abschottung der Threads

Die Java VM schottet die in ihr laufenden Prozesse vom Betriebssystem ab (Green Threads). Sie bildet standardmäßig Java-`F33f`_`[Threads`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Thread_(Informatik)]`_`f durch Threads des Betriebssystems ab. Nur in Ausnahmefällen erfolgt das Thread-Management durch die Java VM. Somit ist es auch möglich, auf einem Betriebssystem, das kein Multithreading unterstützt, eine Java VM mit vollem Funktionsumfang anzubieten.

Die Java VM hat stets volle und standardkonforme Hoheit über die Java-Threads, d. h. der Programmierer braucht nicht die betriebssystemspezifischen Multi-Threading/Tasking/Processing-Eigenschaften zu berücksichtigen und kann sich stets auf die `F33f`_`[JRE`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Java-Laufzeitumgebung]`_`f verlassen. Nachteil ist, dass Probleme, die von einem Thread ausgehen, seitens des Betriebssystems dem gesamten Prozess zugeordnet werden. Gängige Betriebssysteme (wie zum Beispiel Linux, Windows) erlauben Kontrolle über diese „nativen“ Threads allenfalls über Software von Drittanbietern, wie beispielsweise die mit dem `F33f`_`[JDK`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Java_Development_Kit]`_`f mitgelieferte VisualVM. Standardwerkzeuge wie beispielsweise der `F33f`_`[Windows Taskmanager`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Taskmanager]`_`f zeigen Systemthreads jedoch nicht an.

>>JVM-Sprachen

Neben Java gibt es auch andere Sprachen, die als Programmiersprachen für JVM-Programme benutzt werden können. Unter anderem folgende Sprachen können auf einer JVM laufen:

• `F33f`_`[Clojure`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Clojure]`_`f, ein `F33f`_`[Lisp`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Lisp]`_`f-Dialekt,
• `F33f`_`[Ceylon`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Ceylon_(Programmiersprache)]`_`f,
• Concurnas, eine Multi-Paradigma-Programmiersprache für `F33f`_`[nebenläufige`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Nebenläufigkeit]`_`f, `F33f`_`[verteilte`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Verteiltes_System]`_`f und `F33f`_`[reaktive`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Reaktive_Programmierung]`_`f Anwendungen, mit Python-ähnlicher Syntax, Unterstützung für GPU-Computing und Off-Heap-Speicherverwaltung.`:cite-ref-1[`F5bf`_`[1`#cite-note-1]`_`f]`:cite-ref-2[`F5bf`_`[2`#cite-note-2]`_`f]
• Erjang, ein `F33f`_`[Erlang`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Erlang_(Programmiersprache)]`_`f-Dialekt für die JVM,
• `F33f`_`[Free Pascal`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Free_Pascal]`_`f, das auch unter der JVM einen Großteil der `F33f`_`[Object-Pascal`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Object_Pascal]`_`f-Konstrukte unterstützt,
• `F33f`_`[Groovy`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Groovy]`_`f, eine sehr Java-nahe, statisch wie dynamisch typisierte Programmiersprache
• `F33f`_`[JRuby`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=JRuby]`_`f, eine annähernd `F33f`_`[Ruby`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Ruby_(Programmiersprache)]`_`f-kompatible Implementierung,
• `F33f`_`[Jython`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Jython]`_`f (früher: JPython), eine reine Java-Implementierung der Programmiersprache Python,
• `F33f`_`[Kotlin`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Kotlin_(Programmiersprache)]`_`f, eine 2011 vorgestellte Sprache von `F33f`_`[JetBrains`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=JetBrains]`_`f`:cite-ref-3[`F5bf`_`[3`#cite-note-3]`_`f]
• `F33f`_`[Nice`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Nice_(Programmiersprache)]`_`f, ergänzt Java mit parametrischen Typen, anonymen Funktionen, Multimethoden, Tupel und optionalen Parametern`:cite-ref-4[`F5bf`_`[4`#cite-note-4]`_`f]
• `F33f`_`[Scala`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Scala_(Programmiersprache)]`_`f, eine Sprache, die Eigenschaften von Java mit funktionaler Programmierung vereint.

Daneben gibt es eine Reihe von `F33f`_`[Skripting-Sprachen`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Skriptsprache]`_`f, die von Java aus aufrufbar sind. Dazu gehört `F33f`_`[JavaScript`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=JavaScript]`_`f (mittlerweile standardisiert als ECMAScript) mit dem „Rhino“-Interpreter (ein Mozilla-Projekt) bis Version 7 bzw. mit dem „Nashorn“-Interpreter ab Version 8. Auch `F33f`_`[JavaFX`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=JavaFX]`_`f enthielt in den Versionen 1.x eine Skripting-Sprache vor allem für grafische Elemente, ist aber ab Version 2.0 in pure Java implementiert.

>>Kompilierung in JavaScript

Mit der kontinuierlichen Verbesserung der JavaScript-Ausführungsgeschwindigkeit, kombiniert mit der verstärkten Nutzung mobiler Geräte, deren Webbrowser keine Unterstützung für Plugins bereitstellen, gibt es Bemühungen, diese Benutzer durch Kompilierung in JavaScript anzusprechen. Es ist möglich, den Quellcode oder JVM-Bytecode nach JavaScript zu kompilieren.

Die Kompilierung des JVM-Bytecodes, der für alle JVM-Sprachen universell ist, ermöglicht es, auf dem bestehenden Compiler der Sprache aufzubauen und Bytecode zu erstellen. Die wichtigsten JVM-Bytecodes für JavaScript-Compiler sind TeaVM`:cite-ref-5[`F5bf`_`[5`#cite-note-5]`_`f], der Compiler im Dragome Web SDK`:cite-ref-6[`F5bf`_`[6`#cite-note-6]`_`f], Bck2Brwsr`:cite-ref-7[`F5bf`_`[7`#cite-note-7]`_`f], und j2js-Compiler`:cite-ref-8[`F5bf`_`[8`#cite-note-8]`_`f].

Zu den führenden Compilern von JVM-Sprachen zu JavaScript gehören der Java-zu-JavaScript-Compiler in `F33f`_`[Google Web Toolkit`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Google_Web_Toolkit]`_`f, `F33f`_`[Clojurescript`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Clojure]`_`f (Clojure), `F33f`_`[GrooScript (Apache Groovy)`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Groovy]`_`f, `F33f`_`[Scala.js (Scala)`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Scala_(Programmiersprache)]`_`f und andere`:cite-ref-9[`F5bf`_`[9`#cite-note-9]`_`f].

>>Siehe auch

• `F33f`_`[Dalvik`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Dalvik_Virtual_Machine]`_`f – eine von Google für die `F33f`_`[Android-Plattform`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Android_(Betriebssystem)]`_`f entwickelte JVM
• `F33f`_`[HotSpot`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=HotSpot]`_`f – die am weitesten verbreitete JVM von Oracle
• IBM J9
• JRockit (`F33f`_`[BEA Systems`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=BEA_Systems]`_`f, jetzt `F33f`_`[Oracle`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Oracle]`_`f)
• `F33f`_`[Kaffe`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Kaffe]`_`f – eine `F33f`_`[freie`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Freie_Software]`_`f `F33f`_`[GPL`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=GNU_General_Public_License]`_`f-JVM-Implementierung
• Persistent Reusable Java Virtual Machine (PRJVM) – eine von `F33f`_`[IBM`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=IBM]`_`f modifizierte Form der JVM
• PreonVM,`:cite-ref-10[`F5bf`_`[10`#cite-note-10]`_`f] virtuelle Maschine für ressourcenbeschränkte eingebettete Systeme
• SableVM – `F33f`_`[freie`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Freie_Software]`_`f `F33f`_`[LGPL`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=GNU_Lesser_General_Public_License]`_`f JVM-Implementierung

>>Weblinks

Commons

: Java Virtual Machine

– Sammlung von Bildern, Videos und Audiodateien

• Download-Seite der JRE (inklusive der Java Virtual Machine) bei Oracle
• JVM Dokumentation bei Oracle
• Spezifikation der Java VM (englisch)
• SPECjvm, De-facto-Standard zur Messung der Leistung einer JVM

>>Einzelnachweise

`:cite-note-1`!1.`! `F0af`_`[↑`#cite-ref-1]`_`f `*Concurnas: the New Language on the JVM for Concurrent and GPU Computing.`* In: `*InfoQ.com.`* C4Media Inc., abgerufen am 25. Juni 2020 (englisch).
`:cite-note-2`!2.`! `F0af`_`[↑`#cite-ref-2]`_`f `*The Concurnas Programming Language.`* Concurnas Ltd., abgerufen am 25. Juni 2020 (englisch).
`:cite-note-3`!3.`! `F0af`_`[↑`#cite-ref-3]`_`f Kotlin: Erster Web-Auftritt für JetBrains JVM-Sprache, it-republik.de, abgerufen am 22. Juli 2012
`:cite-note-4`!4.`! `F0af`_`[↑`#cite-ref-4]`_`f `*The Nice programming language.`* Abgerufen am 15. August 2019 (englisch).
`:cite-note-5`!5.`! `F0af`_`[↑`#cite-ref-5]`_`f `*TeaVM: Build Fast, Modern Web Apps in Java.`* Abgerufen am 23. Oktober 2019 (englisch).
`:cite-note-6`!6.`! `F0af`_`[↑`#cite-ref-6]`_`f `*Dragome Web SDK.`* Abgerufen am 23. Oktober 2019 (englisch).
`:cite-note-7`!7.`! `F0af`_`[↑`#cite-ref-7]`_`f `*Bck2Brwsr – APIDesign.`* Abgerufen am 23. Oktober 2019 (englisch).
`:cite-note-8`!8.`! `F0af`_`[↑`#cite-ref-8]`_`f `*GitHub – decatur/j2js-compiler: A Java Bytecode to JavaScript Cross-Compiler.`* In: `*GitHub.`* Abgerufen am 23. Oktober 2019 (englisch).
`:cite-note-9`!9.`! `F0af`_`[↑`#cite-ref-9]`_`f `*List of languages that compile to JS · jashkenas/coffeescript Wiki · GitHub.`* Github.com, abgerufen am 26. Juni 2015 (englisch).
`:cite-note-10`!10.`! `F0af`_`[↑`#cite-ref-10]`_`f PreonVM | Virtuelle Maschine für die Preon32-Serie (`F33f`_`[Memento`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Webarchivierung]`_`f des Originals vom 11. November 2017 im `*`F33f`_`[Internet Archive`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Internet_Archive]`_`f`*) `!Info:`! Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.virtenio.com Abgerufen am 10. November 2017

`c`F0af`_`[↑ Back to top`#top]`_`f`a